package com.shinbada.modules.sys.enums;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.shinbada.common.dict.Dict;
import com.shinbada.common.dict.EnumDict;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 系统内置的数据不可以在页面删除
 * 用户定义的可以进行删除操作
 *
 * @author initcap
 * @date 2020/9/12 23:09
 */
@AllArgsConstructor
@Getter
@Dict("dict-group")
@JsonDeserialize(contentUsing = EnumDict.EnumDictJSONDeserializer.class)
public enum DictGroup implements EnumDict<String> {

    /**
     * 只有用户定义的字典才可以进行删除操作
     */
    user("用户定义"),
    system("系统内置"),
    ;

    private final String text;

    /**
     * 用来解决当使用@RequestBody进行接收参数时无法序列化问题
     *
     * @param text 前端传过来的值
     * @return 找到的枚举
     */
    @JsonCreator
    public static DictGroup fromText(String text) {
        for (DictGroup type : DictGroup.values()) {
            if (type.getValue().equals(text)) {
                return type;
            }
        }
        throw new IllegalArgumentException("unknown code");
    }

    @Override
    public String getValue() {
        return name();
    }


}
